home *** CD-ROM | disk | FTP | other *** search
- (*-------------------------------------------------------------------------
- Bitte DEFINITION MODULE zum compilieren auslagern!
- -------------------------------------------------------------------------
- DEFINITION MODULE StorBase;
-
- FROM SYSTEM IMPORT ADDRESS;
-
-
- PROCEDURE allocate (VAR adr: ADDRESS; bytes: LONGCARD; mark: BOOLEAN);
- (* Belegt Speicher ab adr mit bytes Bytes. Wenn Dynamic = TRUE
- * (siehe Prozedur dynamic) wird bei einem Heapüberlauf ein weiteres
- * Speichersegment angefordert und in den Heap integriert. Wenn FALSE
- * oder kein Speicher mehr zu Verfügung steht, wird adr NIL gesetzt.
- *)
-
- PROCEDURE dealloc (VAR Addr: ADDRESS; Amount: LONGCARD; mark: BOOLEAN);
-
- PROCEDURE deallocrest (VAR adr: ADDRESS; Amount: LONGCARD;
- VAR new: LONGCARD; mark: BOOLEAN);
- (* gibt mit allocate belegten Speicher frei
- * Ist new = 0 wird der komplette Block freigegeben, ansonsten ist new
- * die neue Größe des Blocks. Der freizugebende Teil wird am Ende des
- * Blocks abgezwackt.
- *)
-
- PROCEDURE createheap (bytes: LONGCARD): INTEGER;
- (* Installiert den Heap mit bytes Byte. Liefert einen Fehlercode mit
- * folgender Bedeutung:
- *
- * 0 = Kein Fehler, Heap wurde installiert
- * -1 = Kein Speicher in ausreichender Größe zur Verfügung
- * -2 = Heap ist bereits installiert
- *)
-
- PROCEDURE dynamic (dyn: BOOLEAN);
- (* Schaltet die Dynamic-Option des Heaps.
- * TRUE = allocate fordert bei Heapüberlauf neues Speichersegment an.
- * FALSE = allocate liefert bei Heapüberlauf NIL
- *)
-
- PROCEDURE setDefaultSize (size: LONGCARD);
- (* Setzt die Standard-Heapgröße, um die der Heap erweitert wird *)
-
- PROCEDURE free (): LONGCARD;
- (* Liefert Anzahl der Bytes, die auf dem Heap frei sind *)
-
- PROCEDURE heapbase (): ADDRESS;
- (* erster Block des Heaps *)
-
- PROCEDURE granulemarked (addr: ADDRESS): BOOLEAN;
- (* TRUE, wenn der Block in der Lispmap ausgetragen ist *)
-
- PROCEDURE usedgran (mark: BOOLEAN): LONGCARD;
- (* Anzahl der benutzten Granules *)
-
- PROCEDURE memAvail (): LONGCARD;
- (* liefert die Anzahl aller freien Bytes sowohl im Heap, als auch im
- * noch nicht allozierten Speicher - abzüglich der GEMDOS-Reserve
- * (Konstante GEMReserve)
- *)
-
-
- CONST cgrain = 16;
-
- END StorBase.
- ə